/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.webhomesites.locacao.model;

import br.com.webhomesites.padrao.model.ProdutoModel;
import br.com.webhomesites.padrao.utils.AbstractEntity;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;


/**
 *
 * @author Webhome
 */
@Entity
@Table(name="locitemdevolparcial")
@NamedQueries({
@NamedQuery(name="br.com.webhomesites.locacao.model.ItemDevolucaoParcialModel.findMaxId", query ="SELECT MAX(id) from ItemDevolucaoParcialModel p"),
@NamedQuery(name="ItemDevolucaoParcialModel.findMaxIdByIdLocacao", query ="SELECT MAX(i.id) from ItemDevolucaoParcialModel i, LocacaoModel l where l.id = :idloc and i.locacaoModel.id = l.id"),
@NamedQuery(name="ItemDevolucaoParcialModel.findByIdLocacao", query ="SELECT u FROM ItemDevolucaoParcialModel u WHERE u.locacaoModel.id = :idloc")
})
public class ItemDevolucaoParcialModel extends AbstractEntity implements Serializable{
 
    //private long codigoLocacao;        
        private Date dataDevolucao;
        private Date dataPagamento;
        private int diasCalculado;           
        private Double valorItensPrevisto;   
        private Double valorItensCalculado;
        private List<ProdutoModel> listaProdutos;
        private Double valorTotal;
        private Double valorTotalPagar; 
        private Double descontoValor;
        private Double descontoPorcento;
  
        private ProdutoModel produtoModel;
                     
        private LocacaoModel locacaoModel;
//    @Transient
//    private Collection<ProdutoModel> listaProdutos;
    @ManyToOne
    @JoinColumn(name="codlocacao", referencedColumnName="codigo")
    public LocacaoModel getLocacaoModel() {
        return locacaoModel;
    }

    public void setLocacaoModel(LocacaoModel locacaoModel) {
        this.locacaoModel = locacaoModel;
    }       

    @Column(name="datadevolucao")
    @Temporal(javax.persistence.TemporalType.DATE)
        public Date getDataDevolucao() {
        return dataDevolucao;
    }

    public void setDataDevolucao(Date dataDevolucao) {
        this.dataDevolucao = dataDevolucao;
    }    
    
    @Column(name="datapagamento")
    @Temporal(javax.persistence.TemporalType.DATE)
        public Date getDataPagamento() {
        return dataPagamento;
    }

    public void setDataPagamento(Date dataPagamento) {
        this.dataPagamento = dataPagamento;
    } 

    @Column(name="vlrItensPrevisto")
        public double getValorItensPrevisto() {
        return valorItensPrevisto;
    }

    public void setValorItensPrevisto(double valorItensPrevisto) {
        this.valorItensPrevisto = valorItensPrevisto;
    }
    
    @Column(name="vlrItensCalculado")
        public double getValorItensCalculado() {
        return valorItensCalculado;
    }

    public void setValorItensCalculado(double valorItensCalculado) {
        this.valorItensCalculado = valorItensCalculado;
    }

    @Column(name="diasCalculado")
        public int getDiasCalculado() {
        return diasCalculado;
    }

    public void setDiasCalculado(int diasCalculado) {
        this.diasCalculado = diasCalculado;
    }

    @Column(name="descontovlr")
    public double getDescontoValor() {
        return descontoValor;
    }

    public void setDescontoValor(Double descontoValor) {
        this.descontoValor = descontoValor;
    }
    
    
   @Column(name="descontoporcento")
    public double getDescontoPorcento() {
        return descontoPorcento;
    }

    public void setDescontoPorcento(Double descontoPorcento) {
        this.descontoPorcento = descontoPorcento;
    }
    
    @Column(name="vlttotal")
    public double getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(Double valorTotal) {
        this.valorTotal = valorTotal;
    }
    
    @Column(name="vlttotalpagar")
    public double getValorTotalPagar() {
        return valorTotalPagar;
    }

    public void setValorTotalPagar(Double valorTotalPagar) {
        this.valorTotalPagar = valorTotalPagar;
    }
    
    public void setListaProdutos(List<ProdutoModel> listaProdutos){
        this.listaProdutos = listaProdutos;
    }
    
    @Transient
    public List<ProdutoModel> getListaProdutos() {
        return this.listaProdutos;
    }

    @ManyToOne
    @JoinColumn(name="codproduto", referencedColumnName="codigo")
    public ProdutoModel getProdutoModel() {
        return produtoModel;
    }

    public void setProdutoModel(ProdutoModel produtoModel) {
        this.produtoModel = produtoModel;
    }   

}
